package com.itbour.web.action.com;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.struts2.ServletActionContext;

import com.itbour.com.page.Page;
import com.itbour.common.base.BaseAction;
import com.itbour.common.util.DESUtil;
import com.itbour.common.util.MD5;
import com.itbour.common.util.StringUtils;
import com.itbour.dto.com.ItbBackFuncInfoDto;
import com.itbour.dto.com.SysModule;
import com.itbour.dto.com.UserInfoDto;
import com.itbour.helper.WebHelper;
import com.itbour.service.com.UserService;
import com.opensymphony.xwork2.ActionContext;

/**
 * copyright itbour 2015
 * 
 * @author xc
 */

public class LoginWebAction extends BaseAction {
	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;

	private UserService userService;

	private UserInfoDto userInfoDto;

	private String username;

	private String password;

	// private String loginStatus;

	private String oldURL;
	
	private Map<String, Object> navMap;
	
	private UserInfoDto editUserInfoDto;
	
	private Integer userType;
	
	public Integer getUserType() {
		return userType;
	}

	public void setUserType(Integer userType) {
		this.userType = userType;
	}

	public String doInit(){
		return SUCCESS;
	}
	
	public void validateUserLogin(){
		if(StringUtils.isEmpty(username)){
			this.addActionError(getText("validation0001",new String[]{"账户"}));
		}
		if(StringUtils.isEmpty(password)){
			this.addActionError(getText("validation0001",new String[]{"密码"}));
		}
	}
	
	public String userLogin() {
		 String pass = MD5.getMD5(password);
		this.userInfoDto = this.userService.getUserInfo(this.username,pass);
		if (this.userInfoDto!=null && this.userInfoDto.getRole()>0) {
			// TODO
			if((this.userInfoDto.getRole()&8)>0){
				this.userInfoDto.setSuperUser(true);
				this.userInfoDto.setAdmin(true);
			}else{
				this.userInfoDto.setSuperUser(false);
				if((this.userInfoDto.getRole()&7)>0){
					this.userInfoDto.setAdmin(true);
				}else{
					this.userInfoDto.setAdmin(false);
				}
			}
			
			Map<String, Object> session = ActionContext.getContext()
					.getSession();
			session.put("user", this.userInfoDto);
			session.put("userId", this.userInfoDto.getUser_id());
			session.put("isAdmin", this.userInfoDto.isAdmin()?1:0);
			this.oldURL = (String) session.get("oldURL");

			if (session.get("oldURL") != null) {
				session.remove("oldURL");
			}

			if (this.oldURL != null) {
				return SUCCESS;
			}
			return "normalLogin";
		}
		// this.loginStatus="1";
		this.addActionError(getText("message_loginError"));
		return ERROR;
	}
	
	public String doRegister(){
		return SUCCESS;
	}
	
	/**
	 * 获取菜单树
	 * 
	 * @throws Exception
	 */
	public void getNav() throws Exception {
		Map<String, Object> session = ActionContext.getContext().getSession();
		UserInfoDto user = (UserInfoDto)session.get("user");
		
//		String userId = (String) session.get("userId");
//		List<SysPermiss> permissList =(List<SysPermiss>)CacheManagerUtil.getInstance().getCacheData(("bgPermiss:"+userId));
//		if(permissList==null||permissList.size()==0)return;
//		String []permissionIds = new String[permissList.size()];
//		for(int i=0;permissList!=null&&i<permissList.size();i++){
//			SysPermiss sysPermiss = permissList.get(i);
//			permissionIds[i]=sysPermiss.getPermissionId();
//		}
//		SysPermiss sysPermissParam = new SysPermiss();
//		sysPermissParam.setPermissionIds(permissionIds);
//		List<SysModule> modulList = loginService.getModuleListByPermissIds(sysPermissParam);
		
		List<SysModule> topModuleList = new ArrayList<SysModule>();
		List<SysModule> subModuleList = new ArrayList<SysModule>();

//		for(int i=0;modulList!=null&&i<modulList.size();i++){
//			SysModule sysModule = modulList.get(i);
//			if(sysModule.getModuleLevel()==0){
//				topModuleList.add(sysModule);
//			}
//			if(sysModule.getModuleLevel()==1){
//				subModuleList.add(sysModule);
//			}
//		}
/*		
			SysModule sysModule1 = new SysModule();
			sysModule1.setModuleId("001");
			sysModule1.setModuleName("会员管理");
			sysModule1.setModuleIcon("icon-cat-sysManage");
			sysModule1.setModuleUrl("");
			
			SysModule sysModule11 = new SysModule();
			sysModule11.setModuleId("0001");
			sysModule11.setParentId("001");
			sysModule11.setModuleName("会员一览");
			sysModule11.setModuleIcon("icon-cat-sysManage");
//			sysModule11.setModuleUrl("/webcom/userList.action");
			sysModule11.setModuleUrl("/jsp/member/member_info.jsp?userType=1");
			
			topModuleList.add(sysModule1);
			subModuleList.add(sysModule11);
			
			SysModule sysModule12 = new SysModule();
			sysModule12.setModuleId("0001");
			sysModule12.setParentId("001");
			sysModule12.setModuleName("管理员一览");
			sysModule12.setModuleIcon("icon-cat-sysManage");
//			sysModule11.setModuleUrl("/webcom/userList.action");
			sysModule12.setModuleUrl("/jsp/member/sysuser_info.jsp?userType=2");
			
			subModuleList.add(sysModule12);
			
			
			SysModule sysModule2 = new SysModule();
			sysModule2.setModuleId("002");
			sysModule2.setModuleName("商品管理");
			sysModule2.setModuleIcon("icon-cat-sysManage");
			sysModule2.setModuleUrl("");
			
			SysModule sysModule21 = new SysModule();
			sysModule21.setModuleId("0021");
			sysModule21.setParentId("002");
			sysModule21.setModuleName("景区一览");
			sysModule21.setModuleIcon("icon-cat-sysManage");
			sysModule21.setModuleUrl("/webgoods/goodsInit.action?goodsClass=1");
			
			SysModule sysModule22 = new SysModule();
			sysModule22.setModuleId("0022");
			sysModule22.setParentId("002");
			sysModule22.setModuleName("酒店一览");
			sysModule22.setModuleIcon("icon-cat-sysManage");
			sysModule22.setModuleUrl("/webgoods/goodsInit.action?goodsClass=2");
			
			SysModule sysModule23 = new SysModule();
			sysModule23.setModuleId("0023");
			sysModule23.setParentId("002");
			sysModule23.setModuleName("美食一览");
			sysModule23.setModuleIcon("icon-cat-sysManage");
			sysModule23.setModuleUrl("/webgoods/goodsInit.action?goodsClass=3");
			
			SysModule sysModule24 = new SysModule();
			sysModule24.setModuleId("0024");
			sysModule24.setParentId("002");
			sysModule24.setModuleName("购物一览");
			sysModule24.setModuleIcon("icon-cat-sysManage");
			sysModule24.setModuleUrl("/webgoods/goodsInit.action?goodsClass=4");
			
			SysModule sysModule25 = new SysModule();
			sysModule25.setModuleId("0025");
			sysModule25.setParentId("002");
			sysModule25.setModuleName("娱乐一览");
			sysModule25.setModuleIcon("icon-cat-sysManage");
			sysModule25.setModuleUrl("/webgoods/goodsInit.action?goodsClass=5");
			
			topModuleList.add(sysModule2);
			subModuleList.add(sysModule21);
			subModuleList.add(sysModule22);
			subModuleList.add(sysModule23);
			subModuleList.add(sysModule24);
			subModuleList.add(sysModule25);
			
			SysModule sysModule3 = new SysModule();
			sysModule3.setModuleId("003");
			sysModule3.setModuleName("订单管理");
			sysModule3.setModuleIcon("icon-cat-sysManage");
			sysModule3.setModuleUrl("");
			
			SysModule sysModule31 = new SysModule();
			sysModule31.setModuleId("0003");
			sysModule31.setParentId("003");
			sysModule31.setModuleName("订单管理");
			sysModule31.setModuleIcon("icon-cat-sysManage");
			sysModule31.setModuleUrl("/jsp/orders/orders_info.jsp");
			
			topModuleList.add(sysModule3);
			subModuleList.add(sysModule31);
*/
			
		// Itbour added by xc START
		if(user.getOrg_id() == 1L) {// 示界港
			if(user!=null && user.getUser_id()>0L && user.getRole()>0L) {
				
				// 权限管理
				SysModule sysModule2 = new SysModule();
				sysModule2.setModuleId("002");
				sysModule2.setModuleName("权限管理");
				sysModule2.setModuleIcon("icon-cat-sysManage");
				sysModule2.setModuleUrl("");
				
				SysModule sysModule21 = new SysModule();
				sysModule21.setModuleId("0021");
				sysModule21.setParentId("002");
				sysModule21.setModuleName("功能划分一览");
				sysModule21.setModuleIcon("icon-cat-sysManage");
				sysModule21.setModuleUrl("/jsp/authority/backFuncInfo.jsp");
				
				SysModule sysModule22 = new SysModule();
				sysModule22.setModuleId("0022");
				sysModule22.setParentId("002");
				sysModule22.setModuleName("角色一览");
				sysModule22.setModuleIcon("icon-cat-sysManage");
				sysModule22.setModuleUrl("/jsp/authority/roleInfo.jsp");
				
				SysModule sysModule23 = new SysModule();
				sysModule23.setModuleId("0023");
				sysModule23.setParentId("002");
				sysModule23.setModuleName("授权用户一览");
				sysModule23.setModuleIcon("icon-cat-sysManage");
				sysModule23.setModuleUrl("/jsp/authority/userRoleInfo.jsp");
				
				if(user.isAdmin() && user.isSuperUser()) {
					// [管理员]可操作
					topModuleList.add(sysModule2);
					subModuleList.add(sysModule21);
					subModuleList.add(sysModule22);
					subModuleList.add(sysModule23);
				}
				
				// 获取授权的功能页面
				List<ItbBackFuncInfoDto> funcList = this.userService.selectUserRoleFunc(user.getUser_id());
				if(funcList!=null && funcList.size()>0) {
					Long grpId = 0L;// 临时纪录用
					for(int i=0; i<funcList.size(); i++) {
						ItbBackFuncInfoDto funcInfo = funcList.get(i);
						
						if(funcInfo.getGrpId()!=grpId) {
							// 父标签页
							grpId = funcInfo.getGrpId();
							
							SysModule sysModule = new SysModule();
							sysModule.setModuleId(grpId.toString());
							sysModule.setModuleName(funcInfo.getName());
							sysModule.setModuleIcon("icon-cat-sysManage");
							sysModule.setModuleUrl("");
							topModuleList.add(sysModule);
						
						} else {
							// 子标签页
							SysModule sysModule = new SysModule();
							sysModule.setModuleId(funcInfo.getFunc_id().toString());
							sysModule.setParentId(grpId.toString());
							sysModule.setModuleName(funcInfo.getName());
							sysModule.setModuleIcon("icon-cat-sysManage");
							sysModule.setModuleUrl(funcInfo.getUrl());
							subModuleList.add(sysModule);
							
						}
					}
				}
				
				/*
				// 素材管理
				SysModule sysModule4 = new SysModule();
				sysModule4.setModuleId("004");
				sysModule4.setModuleName("素材管理");
				sysModule4.setModuleIcon("icon-cat-sysManage");
				sysModule4.setModuleUrl("");
				
				SysModule sysModule41 = new SysModule();
				sysModule41.setModuleId("0041");
				sysModule41.setParentId("004");
				sysModule41.setModuleName("图片一览");
				sysModule41.setModuleIcon("icon-cat-sysManage");
				sysModule41.setModuleUrl("/jsp/material/image_info.jsp");
				
				SysModule sysModule42 = new SysModule();
				sysModule42.setModuleId("0042");
				sysModule42.setParentId("004");
				sysModule42.setModuleName("图形一览");
				sysModule42.setModuleIcon("icon-cat-sysManage");
				sysModule42.setModuleUrl("/jsp/material/graph_info.jsp");
		    	
				SysModule sysModule43 = new SysModule();
				sysModule43.setModuleId("0043");
				sysModule43.setParentId("004");
				sysModule43.setModuleName("字体一览");
				sysModule43.setModuleIcon("icon-cat-sysManage");
				sysModule43.setModuleUrl("/jsp/material/font_info.jsp");
				//sysModule43.setModuleUrl("/itbFontWeb/fontInit.action?userId=" + user.getUser_id());
				
				if(user.isAdmin() || (user.getRole()&16)>0) {
					// [管理员,设计人员]可操作
					topModuleList.add(sysModule4);
					subModuleList.add(sysModule41);
					subModuleList.add(sysModule42);
					subModuleList.add(sysModule43);
				}
				
				// PPT模板管理
				SysModule sysModule5 = new SysModule();
				sysModule5.setModuleId("005");
				sysModule5.setModuleName("PPT模版管理");
				sysModule5.setModuleIcon("icon-cat-sysManage");
				sysModule5.setModuleUrl("");
				
				SysModule sysModule51 = new SysModule();
				sysModule51.setModuleId("0051");
				sysModule51.setParentId("005");
				sysModule51.setModuleName("PPT样版一览");
				sysModule51.setModuleIcon("icon-cat-sysManage");
				//sysModule51.setModuleUrl("/js/egret/index.html");
				sysModule51.setModuleUrl("/jsp/material/mstTmpl_info.jsp");
				
				SysModule sysModule52 = new SysModule();
				sysModule52.setModuleId("0052");
				sysModule52.setParentId("005");
				sysModule52.setModuleName("PPT模版一览");
				sysModule52.setModuleIcon("icon-cat-sysManage");
				//sysModule52.setModuleUrl("/js/egret/index.html");
				sysModule52.setModuleUrl("/jsp/material/template_info.jsp");
				
				if(user.isAdmin() || (user.getRole()&16)>0 || (user.getRole()&32)>0){
					// [管理员,设计人员,模版管理员]可操作
					topModuleList.add(sysModule5);
					if(user.isAdmin()){
						// 只有管理员能编辑样板
						subModuleList.add(sysModule51);
					}
					subModuleList.add(sysModule52);
				}
				
				// 竖屏提纲管理
				SysModule sysModule6 = new SysModule();
				sysModule6.setModuleId("006");
				sysModule6.setModuleName("提纲管理");
				sysModule6.setModuleIcon("icon-cat-sysManage");
				sysModule6.setModuleUrl("");
				
				SysModule sysModule61 = new SysModule();
				sysModule61.setModuleId("0061");
				sysModule61.setParentId("006");
				sysModule61.setModuleName("提纲模版一览");
				sysModule61.setModuleIcon("icon-cat-sysManage");
				sysModule61.setModuleUrl("/jsp/tg/outlineMst.jsp");
				
				SysModule sysModule62 = new SysModule();
				sysModule62.setModuleId("0062");
				sysModule62.setParentId("006");
				sysModule62.setModuleName("提纲实例一览");
				sysModule62.setModuleIcon("icon-cat-sysManage");
				sysModule62.setModuleUrl("/jsp/tg/outlineInfo.jsp");
				
				SysModule sysModule63 = new SysModule();
				sysModule63.setModuleId("0063");
				sysModule63.setParentId("006");
				sysModule63.setModuleName("分页映射一览");
				sysModule63.setModuleIcon("icon-cat-sysManage");
				sysModule63.setModuleUrl("/jsp/tg/mappingInfo.jsp");

				SysModule sysModule64 = new SysModule();
				sysModule64.setModuleId("0064");
				sysModule64.setParentId("006");
				sysModule64.setModuleName("设计模版一览");
				sysModule64.setModuleIcon("icon-cat-sysManage");
				sysModule64.setModuleUrl("/jsp/tg/designInfo.jsp");
				
				SysModule sysModule65 = new SysModule();
				sysModule65.setModuleId("0065");
				sysModule65.setParentId("006");
				sysModule65.setModuleName("设计模版审核");
				sysModule65.setModuleIcon("icon-cat-sysManage");
				sysModule65.setModuleUrl("/jsp/tg/designReview.jsp");
				
				if(user.isAdmin() || (user.getRole()&16)>0 || (user.getRole()&32)>0){
					// [管理员,设计人员,模版管理员]可操作
					topModuleList.add(sysModule6);
					if(user.isAdmin()){
						// 只有管理员能编辑提纲
						subModuleList.add(sysModule61);
						subModuleList.add(sysModule62);
						subModuleList.add(sysModule63);
						subModuleList.add(sysModule64);
						// 管理员能审核模版
						subModuleList.add(sysModule65);
					}else{
						if((user.getRole()&16)>0) {
							// 设计人员可操作
							subModuleList.add(sysModule63);
						}
						subModuleList.add(sysModule64);
						if((user.getRole()&32)>0) {
							// 模版管理员可审核
							subModuleList.add(sysModule65);
						}
					}
				}
				
				// 其它管理
				SysModule sysModule7 = new SysModule();
				sysModule7.setModuleId("007");
				sysModule7.setModuleName("其它管理");
				sysModule7.setModuleIcon("icon-cat-sysManage");
				sysModule7.setModuleUrl("");
				
				SysModule sysModule71 = new SysModule();
				sysModule71.setModuleId("0071");
				sysModule71.setParentId("007");
				sysModule71.setModuleName("专题一览");
				sysModule71.setModuleIcon("icon-cat-sysManage");
				sysModule71.setModuleUrl("/jsp/tg/topicInfo.jsp");
				
				SysModule sysModule72 = new SysModule();
				sysModule72.setModuleId("0072");
				sysModule72.setParentId("007");
				sysModule72.setModuleName("通知消息一览");
				sysModule72.setModuleIcon("icon-cat-sysManage");
				sysModule72.setModuleUrl("/jsp/tg/notifyInfo.jsp");
				
				SysModule sysModule73 = new SysModule();
				sysModule73.setModuleId("0073");
				sysModule73.setParentId("007");
				sysModule73.setModuleName("搜索关键词一览");
				sysModule73.setModuleIcon("icon-cat-sysManage");
				sysModule73.setModuleUrl("/jsp/tg/searchTagInfo.jsp");
				
				SysModule sysModule75 = new SysModule();
				sysModule75.setModuleId("0075");
				sysModule75.setParentId("007");
				sysModule75.setModuleName("场景展示一览");
				sysModule75.setModuleIcon("icon-cat-sysManage");
				sysModule75.setModuleUrl("/jsp/tg/sceneInfo.jsp");
				
				SysModule sysModule76 = new SysModule();
				sysModule76.setModuleId("0076");
				sysModule76.setParentId("007");
				sysModule76.setModuleName("用户反馈一览");
				sysModule76.setModuleIcon("icon-cat-sysManage");
				sysModule76.setModuleUrl("/jsp/tg/feedbackInfo.jsp");
				
				SysModule sysModule77 = new SysModule();
				sysModule77.setModuleId("0077");
				sysModule77.setParentId("007");
				sysModule77.setModuleName("版本管理一览");
				sysModule77.setModuleIcon("icon-cat-sysManage");
				sysModule77.setModuleUrl("/jsp/material/prodVerInfo.jsp");
				
				SysModule sysModule78 = new SysModule();
				sysModule78.setModuleId("0078");
				sysModule78.setParentId("007");
				sysModule78.setModuleName("环信IM");
				sysModule78.setModuleIcon("icon-cat-sysManage");
				sysModule78.setModuleUrl("/js/web-im/index.html");
				
				if(user.isAdmin() || (user.getRole()&128)>0 || (user.getRole()&32)>0){
					topModuleList.add(sysModule7);
					if(user.isAdmin()||(user.getRole()&32)>0){
						// [管理员,模版管理员]能编辑专题,搜索关键词,场景一览
						subModuleList.add(sysModule71);
						subModuleList.add(sysModule73);
						subModuleList.add(sysModule75);
						subModuleList.add(sysModule77);
					}
					
					// [管理员,模版管理员,客服]能编辑消息通知
					subModuleList.add(sysModule72);
					
					if(user.isAdmin()||(user.getRole()&128)>0){
						// [管理员,客服]能查看反馈
						subModuleList.add(sysModule76);
						subModuleList.add(sysModule78);
					}
				}
				
				// 商品管理
				SysModule sysModule8 = new SysModule();
				sysModule8.setModuleId("008");
				sysModule8.setModuleName("商品管理");
				sysModule8.setModuleIcon("icon-cat-sysManage");
				sysModule8.setModuleUrl("");
				
				SysModule sysModule81 = new SysModule();
				sysModule81.setModuleId("0081");
				sysModule81.setParentId("008");
				sysModule81.setModuleName("商品一览");
				sysModule81.setModuleIcon("icon-cat-sysManage");
				sysModule81.setModuleUrl("/jsp/trade/itemsInfo.jsp");
				
				SysModule sysModule82 = new SysModule();
				sysModule82.setModuleId("0082");
				sysModule82.setParentId("008");
				sysModule82.setModuleName("印刷参数一览");
				sysModule82.setModuleIcon("icon-cat-sysManage");
				sysModule82.setModuleUrl("/jsp/trade/printParaInfo.jsp");
				
				SysModule sysModule83 = new SysModule();
				sysModule83.setModuleId("0083");
				sysModule83.setParentId("008");
				sysModule83.setModuleName("数量价格一览");
				sysModule83.setModuleIcon("icon-cat-sysManage");
				sysModule83.setModuleUrl("/jsp/trade/priceInfo.jsp");
				
				SysModule sysModule84 = new SysModule();
				sysModule84.setModuleId("0084");
				sysModule84.setParentId("008");
				sysModule84.setModuleName("优惠券(码)一览");
				sysModule84.setModuleIcon("icon-cat-sysManage");
				sysModule84.setModuleUrl("/jsp/trade/couponInfo.jsp");
				
				SysModule sysModule85 = new SysModule();
				sysModule85.setModuleId("0085");
				sysModule85.setParentId("008");
				sysModule85.setModuleName("商品通用图片一览");
				sysModule85.setModuleIcon("icon-cat-sysManage");
				sysModule85.setModuleUrl("/jsp/trade/itemComImgInfo.jsp");
				
				if(user.isAdmin() || (user.getRole()&256)>0 || (user.getRole()&512)>0){
					topModuleList.add(sysModule8);
					// [管理员，测试]能编辑
					if(user.isAdmin() || (user.getRole()&256)>0) {
						subModuleList.add(sysModule81);
						subModuleList.add(sysModule85);
						subModuleList.add(sysModule82);
						subModuleList.add(sysModule83);
					}
					// [管理员，测试, 市场人员]能编辑
					if(user.isAdmin() || (user.getRole()&256)>0 || (user.getRole()&512)>0) {
						subModuleList.add(sysModule84);
					}
				}
				
				// 订单管理
				SysModule sysModule9 = new SysModule();
				sysModule9.setModuleId("009");
				sysModule9.setModuleName("订单管理");
				sysModule9.setModuleIcon("icon-cat-sysManage");
				sysModule9.setModuleUrl("");
				
				SysModule sysModule91 = new SysModule();
				sysModule91.setModuleId("0091");
				sysModule91.setParentId("009");
				sysModule91.setModuleName("商品订单一览");
				sysModule91.setModuleIcon("icon-cat-sysManage");
				sysModule91.setModuleUrl("/jsp/trade/ordersInfo.jsp");
				
				SysModule sysModule92 = new SysModule();
				sysModule92.setModuleId("0092");
				sysModule92.setParentId("009");
				sysModule92.setModuleName("发票订单一览");
				sysModule92.setModuleIcon("icon-cat-sysManage");
				sysModule92.setModuleUrl("/jsp/trade/invoiceInfo.jsp");
				
				SysModule sysModule93 = new SysModule();
				sysModule93.setModuleId("0093");
				sysModule93.setParentId("009");
				sysModule93.setModuleName("模版订单一览");
				sysModule93.setModuleIcon("icon-cat-sysManage");
				sysModule93.setModuleUrl("/jsp/trade/buyTmplInfo.jsp");
				
				if(user.isAdmin() || (user.getRole()&64)>0){
					// [管理员,印刷对接员]能操作
					topModuleList.add(sysModule9);
					subModuleList.add(sysModule91);
					subModuleList.add(sysModule92);
					subModuleList.add(sysModule93);
				}
				
				// 申请／合作
				SysModule sysModule10 = new SysModule();
				sysModule10.setModuleId("010");
				sysModule10.setModuleName("合作管理");
				sysModule10.setModuleIcon("icon-cat-sysManage");
				sysModule10.setModuleUrl("");
				
				SysModule sysModule101 = new SysModule();
				sysModule101.setModuleId("0101");
				sysModule101.setParentId("010");
				sysModule101.setModuleName("合作申请一览");
				sysModule101.setModuleIcon("icon-cat-sysManage");
				sysModule101.setModuleUrl("/jsp/tg/coopAppInfo.jsp");
				
				SysModule sysModule102 = new SysModule();
				sysModule102.setModuleId("0102");
				sysModule102.setParentId("010");
				sysModule102.setModuleName("(城市)合伙人一览");
				sysModule102.setModuleIcon("icon-cat-sysManage");
				sysModule102.setModuleUrl("/jsp/tg/partnerInfo.jsp");
				
				if(user.isAdmin() || (user.getRole()&128)>0){
					// [管理员,客服]能操作
					topModuleList.add(sysModule10);
					subModuleList.add(sysModule101);
					subModuleList.add(sysModule102);
					if(user.isAdmin()) {
						
					}
				}
				
				// 统计
				SysModule sysModule11 = new SysModule();
				sysModule11.setModuleId("011");
				sysModule11.setModuleName("统计管理");
				sysModule11.setModuleIcon("icon-cat-sysManage");
				sysModule11.setModuleUrl("");
				
				SysModule sysModule111 = new SysModule();
				sysModule111.setModuleId("0111");
				sysModule111.setParentId("011");
				sysModule111.setModuleName("模版使用统计");
				sysModule111.setModuleIcon("icon-cat-sysManage");
				sysModule111.setModuleUrl("/jsp/stats/userDocStats.jsp");
				
				SysModule sysModule112 = new SysModule();
				sysModule112.setModuleId("0112");
				sysModule112.setParentId("011");
				sysModule112.setModuleName("优惠券使用统计");
				sysModule112.setModuleIcon("icon-cat-sysManage");
				sysModule112.setModuleUrl("/jsp/stats/couponStats.jsp");
				
				SysModule sysModule113 = new SysModule();
				sysModule113.setModuleId("0113");
				sysModule113.setParentId("011");
				sysModule113.setModuleName("订单统计");
				sysModule113.setModuleIcon("icon-cat-sysManage");
				sysModule113.setModuleUrl("/jsp/stats/orderStats.jsp");
				
				SysModule sysModule114 = new SysModule();
				sysModule114.setModuleId("0114");
				sysModule114.setParentId("011");
				sysModule114.setModuleName("用户文档分析");
				sysModule114.setModuleIcon("icon-cat-sysManage");
				sysModule114.setModuleUrl("/jsp/stats/tgDocStats.jsp");
				
				if(user.isAdmin() || (user.getRole()&128)>0){
					// [管理员,客服]能操作
					topModuleList.add(sysModule11);
					if(user.isAdmin()) {
						// 管理员
						subModuleList.add(sysModule111);
						subModuleList.add(sysModule114);
						subModuleList.add(sysModule112);
					}
					subModuleList.add(sysModule113);
				}
				*/
				
			}// check user
			
		} else if(user.getOrg_id() == 12L) {// 酒单网
			// 订单管理
			SysModule sysModule9 = new SysModule();
			sysModule9.setModuleId("009");
			sysModule9.setModuleName("订单管理");
			sysModule9.setModuleIcon("icon-cat-sysManage");
			sysModule9.setModuleUrl("");
			
			SysModule sysModule91 = new SysModule();
			sysModule91.setModuleId("0091");
			sysModule91.setParentId("009");
			sysModule91.setModuleName("印品订单一览");
			sysModule91.setModuleIcon("icon-cat-sysManage");
			sysModule91.setModuleUrl("/jsp/trade/orderInfo2.jsp");
			
			topModuleList.add(sysModule9);
			subModuleList.add(sysModule91);
		}	
		// Itbour added by xc End
		
		Map<String, Object> navMap = new HashMap<String, Object>();
		List<Object> topMenus = new ArrayList<Object>();
		for(int i=0;topModuleList!=null&&i<topModuleList.size();i++){
			SysModule topModule = topModuleList.get(i);
			Map<String, Object> topMap = new HashMap<String, Object>();
			topMap.put("menuid",topModule.getModuleId());
			topMap.put("menuname",topModule.getModuleName());
			topMap.put("icon", topModule.getModuleIcon());
			topMap.put("uri", topModule.getModuleUrl());
			topMenus.add(topMap);
			List<Object> subMenus = new ArrayList<Object>();
			for(int j=0;subModuleList!=null&&j<subModuleList.size();j++){
				SysModule subModule = subModuleList.get(j);
				if(subModule.getParentId()!=null&&subModule.getParentId().equals(topModule.getModuleId())){
					Map<String, Object> subMap = new HashMap<String, Object>();
					subMap.put("menuid", subModule.getModuleId());
					subMap.put("menuname", subModule.getModuleName());
					subMap.put("icon", subModule.getModuleIcon());
					subMap.put("url", subModule.getModuleUrl());
					subMenus.add(subMap);
				}
			}
			topMap.put("menus", subMenus);
		}
		navMap.put("menus", topMenus);
		writeJSON(navMap);
	}
	
	public void userList() throws Exception{
		HttpServletRequest request = ServletActionContext.getRequest();
		String pageNumber = request.getParameter("page");
		String pageSize = request.getParameter("rows");
		Map<String,Object> param = new HashMap<String,Object>(); 
		String id = request.getParameter("id");
		if(StringUtils.isNotEmpty(id)){
			param.put("id", id);
		}
		String username = request.getParameter("username");
		if(StringUtils.isNotEmpty(username)){
			param.put("username", username);
		}
		param.put("userType", userType);
		Page page =userService.pageQuery(param, Integer.parseInt(pageNumber), Integer.parseInt(pageSize));
		HashMap<String, Object> resMap = new HashMap<String, Object>();
		resMap.put("total", page.getTotalCount());
		resMap.put("rows", page.getResult());
		writeJSON(resMap);
	}

	/**
	 * 获取代码下拉框
	 * @throws Exception
	 */
	public void getCodesForCombox() throws Exception {
		List<Object> res = new ArrayList<Object>();
		Map<String, Object> defaultValue = new HashMap<String, Object>();
		defaultValue.put("id", "");
		defaultValue.put("text", "请选择");
		defaultValue.put("selected", true);
		res.add(defaultValue);
		//String codeTypeId = request.getParameter("codeTypeId");
		//List<SysCode> codeList = BaseDataManage.getCodeInfo(codeTypeId);
		//if (null != codeList && !codeList.isEmpty()) {
			//for (SysCode t : codeList) {
				Map<String, Object> typeMap = new HashMap<String, Object>();
				typeMap.put("id", "1");
				typeMap.put("text", "终端用户");
				res.add(typeMap);
				
				Map<String, Object> typeMap2 = new HashMap<String, Object>();
				typeMap2.put("id", "2");
				typeMap2.put("text", "后台管理");
				res.add(typeMap2);
			//}
		//}
		writeJSON(res);
	}
	
	/**
	 * 保存会员信息
	 * @throws Exception
	 */
	public void save() throws Exception {
		int cnt = userService.checkUsernameCnt(this.editUserInfoDto.getUser_name());
		if(cnt > 0){
			writeText("existId");
			return;
		}
		this.editUserInfoDto.setPassword(MD5.getMD5(this.editUserInfoDto.getPassword()));
		this.userService.userRegister(editUserInfoDto);
		writeText("success");
	}
	
	/**
	 * 修改会员信息
	 * @throws Exception
	 */
	public void update() throws Exception {
		int cnt = userService.checkUsernameCnt(this.editUserInfoDto.getUser_name());
		if (cnt == 0) {
			writeText("fail");
			return;
		}
		this.editUserInfoDto.setPassword(MD5.getMD5(this.editUserInfoDto.getPassword()));
		userService.updateUserInfo(editUserInfoDto);
		writeText("success");
	}
	
	public String doLogout() {

		if (ServletActionContext.getRequest().getSession(false) != null) {
			ServletActionContext.getRequest().getSession(false).invalidate();
		}

		return SUCCESS;

	}
	
	public UserInfoDto getEditUserInfoDto() {
		return editUserInfoDto;
	}

	public void setEditUserInfoDto(UserInfoDto editUserInfoDto) {
		this.editUserInfoDto = editUserInfoDto;
	}

	public String getOldURL() {
		return oldURL;
	}

	public void setOldURL(String oldURL) {
		this.oldURL = oldURL;
	}
	
	public Map<String, Object> getNavMap() {
		return navMap;
	}

	public void setNavMap(Map<String, Object> navMap) {
		this.navMap = navMap;
	}


	/**
	 * @return the userService
	 */
	public UserService getUserService() {
		return userService;
	}

	/**
	 * @param userService
	 *            the userService to set
	 */
	public void setUserService(UserService userService) {
		this.userService = userService;
	}

	/**
	 * @return the userInfoDto
	 */
	public UserInfoDto getUserInfoDto() {
		return userInfoDto;
	}

	/**
	 * @param userInfoDto
	 *            the userInfoDto to set
	 */
	public void setUserInfoDto(UserInfoDto userInfoDto) {
		this.userInfoDto = userInfoDto;
	}

	public String getUsername() {
		return username;
	}

	public void setUsername(String username) {
		this.username = username;
	}

	/**
	 * @return the password
	 */
	public String getPassword() {
		return password;
	}

	/**
	 * @param password
	 *            the password to set
	 */
	public void setPassword(String password) {
		this.password = password;
	}
}
